<?php
/**
 *
 *
 *
 */
interface Yz_Module_WebModule_Interface
    extends Yz_Module_Interface
{

    /**
     *  @return bool
     */
    public function hasController($controllerName);

    /**
     *  @return Yz_Controller_Interface|false
     */
    public function selectController($controllerName);

    /**
     *  @return Yz_Controller_Interface&
     *  @throw ControllerNotFound ...
     */
    public function selectDefaultController();

    /**
     *  @return Yz_Controller_Interface& | false
     *  @throw ControllerNotFound ...
     */
    public function selectErrorController();

    /**
     *  @return Yz_Template_Interface&
     *  @throw TemplateNotFound ...
     */
    public function selectTemplate($templateName);

}
